import plotly.graph_objects as go
import pandas as pd
from datetime import datetime
dic={"Jan":"01","Feb":"02","Mar":"03","Apr":"04","May":"05","Jun":"06","Jul":"07","Aug":"08","Sep":"09","Oct":"10","Nov":"11","Dec":"12"}
def convert(list):
for i in range(len(list)):
month=dic[list[i].split(" ")[0]]
date=list[i].split(" ")[1]
year=list[i].split(" ")[2]
list[i]=year+"-"+month+"-"+date
return list
# Load data
df = pd.read_csv(
"https://raw.githubusercontent.com/chuantianlin/data/main/crime2.csv")
date=convert(df['date'].tolist())
date.sort(key = lambda date: datetime.strptime(date, '%Y-%m-%d'))
count=df['count'].tolist()
# Create figure
fig = go.Figure()
fig.add_trace(
go.Scatter(x=date, y=count))
# Set title
fig.update_layout(
title_text="number of Crimes in DC"
)
# Add range slider
fig.update_layout(
xaxis=dict(
rangeselector=dict(
buttons=list([
dict(count=1,
label="1m",
step="month",
stepmode="backward"),
dict(count=6,
label="6m",
step="month",
stepmode="backward"),
dict(count=1,
label="YTD",
step="year",
stepmode="todate"),
dict(count=1,
label="1y",
step="year",
stepmode="backward"),
dict(step="all")
])
),
rangeslider=dict(
visible=True
),
type="date"
)
)
fig.show()